#ifndef JBK_AI_GA_GENOME_H
#define JBK_AI_GA_GENOME_H

namespace GA {

/* genome */
class Genome {
public:
	/* dtor */
	virtual ~Genome() {};

	/* copy */
	virtual Genome* copy() const = 0;

	/* crossover */
	virtual Genome* crossover(const Genome& genome) const = 0;

	/* mutate */
	virtual void mutate(double geneMutationProbability) = 0;
};

} // GA

#endif // JBK_AI_GA_GENOME_H

